#include "stdafx.h"
#include "C_TextureManager.h"
#include "C_Texture.h"

/////////////////////////////////////////////////////////////////////////////
//	CONSTRUCTOR
/////////////////////////////////////////////////////////////////////////////
C_TextureManager::C_TextureManager()
{
}

/////////////////////////////////////////////////////////////////////////////
//	DESTRUCTOR
/////////////////////////////////////////////////////////////////////////////
C_TextureManager::~C_TextureManager()
{
	FOR_VEC_I(it, m_sprites, C_Texture*)
	{
		C_Texture *tex = *it;
		delete tex;
	}
	m_sprites.clear();
}

/////////////////////////////////////////////////////////////////////////////
//	FIND
/////////////////////////////////////////////////////////////////////////////
C_Texture* C_TextureManager::find(std::string filename)
{
	FOR_VEC_I(it, m_sprites, C_Texture*)
	{
		if ((*it)->name() == filename)
		{
			return *it;
		}
	}

	return NULL;
}


/////////////////////////////////////////////////////////////////////////////
//	REMOVE
/////////////////////////////////////////////////////////////////////////////
bool C_TextureManager::remove(UINT32 index)
{
	FOR_VEC_I(it, m_sprites, C_Texture*)
	{
		C_Texture *tex = *it;
		if (tex->index() == index)
		{
			m_sprites.erase(it);
			delete tex;
			return true;
		}
	}
	return false;
}


/////////////////////////////////////////////////////////////////////////////
//	PUSH
/////////////////////////////////////////////////////////////////////////////
bool C_TextureManager::push(C_Texture *t)
{
	if (t == NULL) return false;

	m_sprites.push_back(t);
	return true;
}
